_HAL_IOMMU_DISPATCH

//0x4c bytes (sizeof) struct _HAL_IOMMU_DISPATCH { UCHAR (*HalIommuSupportEnabled)(); //0x0 LONG (*HalIommuGetConfiguration)(ULONG arg1, ULONG* arg2, ULONG* arg3, VOID** arg4); //0x4 LONG (*HalIommuGetLibraryContext)(ULONG arg1, ULONG arg2, VOID** arg3); //0x8 LONG (*HalIommuMapDevice)(VOID* arg1, struct _EXT_IOMMU_DEVICE_ID* arg2, union _IOMMU_SVM_CAPABILITIES* arg3, VOID** arg4); //0xc LONG (*HalIommuEnableDevicePasid)(VOID* arg1, VOID* arg2); //0x10 LONG (*HalIommuSetAddressSpace)(VOID* arg1, ULONG arg2); //0x14 LONG (*HalIommuDisableDevicePasid)(VOID* arg1, VOID* arg2); //0x18 LONG (*HalIommuUnmapDevice)(VOID* arg1, VOID* arg2); //0x1c LONG (*HalIommuFreeLibraryContext)(VOID* arg1); //0x20 VOID (*HalIommuFlushTb)(VOID* arg1, ULONG arg2, struct _KTB_FLUSH_VA* arg3); //0x24 VOID (*HalIommuFlushAllPasid)(VOID* arg1, ULONG arg2, struct _KTB_FLUSH_VA* arg3); //0x28 UCHAR (*HalIommuProcessPageRequestQueue)(ULONG arg1); //0x2c VOID (*HalIommuFaultRoutine)(ULONG arg1); //0x30 VOID* (*HalIommuReferenceAsid)(ULONG arg1); //0x34 VOID (*HalIommuDereferenceAsid)(ULONG arg1); //0x38 LONG (*HalIommuServicePageFault)(ULONG arg1, VOID* arg2, ULONG arg3); //0x3c LONG (*HalIommuDevicePowerChange)(VOID* arg1, VOID* arg2, UCHAR arg3); //0x40 LONG (*HalIommuBeginDeviceReset)(VOID* arg1, ULONG* arg2); //0x44 LONG (*HalIommuFinalizeDeviceReset)(VOID* arg1); //0x48 };